#pragma once
#ifndef TestModifies_h
#define TestModifies_h

#if _DEBUG

#include <cppunit\extensions\HelperMacros.h>
#include "../source/Modifies.h"
#include "../source/ModifiesHandle.h"

Modifies mod1;


class ModifiesTest : public CPPUNIT_NS::TestFixture {
	CPPUNIT_TEST_SUITE(ModifiesTest);
	//CPPUNIT_TEST(TestConstructor);
	//CPPUNIT_TEST(TestInsertModifies);
	//CPPUNIT_TEST(TestInsertDupModifies);
	//CPPUNIT_TEST(TestInsertSecond);
	//CPPUNIT_TEST(TestClearMap);
	CPPUNIT_TEST(TestInsertActualRelations);
	CPPUNIT_TEST(TestAssignmentModifiesVariable);
	CPPUNIT_TEST(TestVariableModifiedByAssignment);
	CPPUNIT_TEST(TestGetAssignmentModifies);
	CPPUNIT_TEST(TestContainerModifiesVariable);
	CPPUNIT_TEST(TestGetVariablesModifiedByContainer);
	CPPUNIT_TEST(TestGetProceduresModifiesVariable);
	CPPUNIT_TEST(TestGetVariablesModifiedByProcedure);
	CPPUNIT_TEST(TestGetContainerModifies);
	CPPUNIT_TEST(TestGetStatementModifies);
	CPPUNIT_TEST(TestGetProcedureModifies);
	CPPUNIT_TEST_SUITE_END();
//	TestModifies(void);
	//~TestModifies(void);


public:


	void SetUp();
	void TearDown();
	void TestConstructor();
	void TestInsertModifies();
	void TestInsertDupModifies();
	void TestInsertSecond();
	void TestClearMap();
	void TestInsertActualRelations();
	void TestAssignmentModifiesVariable();
	void TestVariableModifiedByAssignment();
	void TestGetAssignmentModifies();
	void TestContainerModifiesVariable();
	void TestGetVariablesModifiedByContainer();
	void TestGetProceduresModifiesVariable();
	void TestGetVariablesModifiedByProcedure();
	void TestGetContainerModifies();
	void TestGetStatementModifies();
	void TestGetProcedureModifies();

};
#endif

#endif